3239. 最少翻转次数使二进制矩阵回文 I
为保证权益,题目请参考 3239. 最少翻转次数使二进制矩阵回文 I(From LeetCode).
解决方案1
说明
在这个问题中,只需要分别从列和行的角度各自遍历一遍所需要的数量,选最小者即可。
Python
python
from typing import List
class Solution:
def minFlips(self, grid: List[List[int]]) -> int:
m = len(grid)
n = len(grid[0])
MAX_INT = 9999999
ans = MAX_INT
change_count = 0
for i in range(m):
for j in range(n // 2):
if grid[i][j] != grid[i][n - j - 1]:
change_count += 1
ans = min(ans, change_count)
change_count = 0
for i in range(n):
for j in range(m // 2):
if grid[j][i] != grid[m - 1 - j][i]:
change_count += 1
ans = min(ans, change_count)
return ans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27